package com.wei.czz.common.dto.store;

import com.wei.czz.common.enums.CommonEnum;
import com.wei.czz.common.tool.BaseEntity;
import com.wei.czz.framework.store.entity.StoreAccountEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wyw
 * date: 2023-12-01 14:27:12
 * className: StoreAccountDto
 * version: 1.0
 * description:
 */
@Getter
@Setter
@Accessors(chain = true)
public class StoreAccountDto extends BaseEntity {

    /**
     * 主键
     */
    private String id;

    /**
     * 账户类型[0-对公 1-对私]
     */
    private Integer type;

    /**
     * 姓名
     */
    private String name;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 企业名称
     */
    private String enterpriseName;

    /**
     * 企业社会统一信用代码
     */
    private String enterpriseNo;

    /**
     * 银行卡号
     */
    private String bankNo;

    /**
     * 银行名称
     */
    private String bankName;

    /**
     * 支行名称
     */
    private String bankBranchName;

    /**
     * 银行预留手机号
     */
    private String bankMobile;

    /**
     * 银行所在城市
     */
    private Integer bankCity;

    /**
     * 序号
     */
    private Integer sort;

    /**
     * 状态[0-可用 1-停用]
     */
    private Integer status;

    /**
     * 是否默认账户[0-是 1-否]
     */
    private Integer defaultStatus;

    /**
     * 审核状态[0-审核中 1-审核通过 2-审核拒绝]
     */
    private Integer auditStatus;

    /**
     * 商店账户数据封装
     * @param storeAccount 商店账户对象
     * @return 封装结果
     */
    public static StoreAccountDto map(StoreAccountEntity storeAccount) {
        StoreAccountDto storeAccountDto = new StoreAccountDto();
        storeAccountDto.setId(storeAccount.getId().toString())
                .setType(CommonEnum.filterDefault(storeAccount.getType()))
                .setName(storeAccount.getName())
                .setIdCard(storeAccount.getIdCard())
                .setEnterpriseName(storeAccount.getEnterpriseName())
                .setEnterpriseNo(storeAccount.getEnterpriseNo())
                .setBankNo(storeAccount.getBankNo())
                .setBankName(storeAccount.getBankName())
                .setBankBranchName(storeAccount.getBankBranchName())
                .setBankMobile(storeAccount.getBankMobile())
                .setBankCity(CommonEnum.filterDefault(storeAccount.getBankCity()))
                .setSort(storeAccount.getSort())
                .setStatus(storeAccount.getStatus())
                .setDefaultStatus(storeAccount.getDefaultStatus())
                .setAuditStatus(storeAccount.getAuditStatus());
        return storeAccountDto;
    }

}
